Playing an interactive real-time card selection game over a network

ABSTRACT

A method of playing an interactive, computerized, multi-player card game in which desired cards are selected by players, some of which may be virtual players generated by the game&#39;s software. Each real player uses a computer or similar device that is connected to a network. Virtual player card selection and betting is controlled by computer software. After each player has selected a card in a round, computer software determines what card each player is dealt. Null cards having no value in the scoring are dealt when there is a conflict in card selection or when a player fails to select a card within a time limit. The games follow the rules of poker.

TECHNICAL FIELD

The present invention relates to computer-based multi-player card games in which players select cards that follow the rules of poker.

BACKGROUND OF THE INVENTION

The game of poker is well known and the rules can be found in nearly every card game rule book. In the game of poker cards are dealt to each player. Players may have a chance to improve their hand by discarding some of their cards, and receiving replacements, as in draw poker, or more cards may be dealt than needed and the best cards retained, as in the seven-card variations of poker. Various rounds of betting take place after dealing and after drawing. In five-card stud poker, one card is dealt face down and the four remaining cards are dealt face up one at a time with a round of betting after each face up card is dealt. In all variations of poker, when the betting rounds are completed, the remaining players expose their hands and the winning player collects the money bet. The outcome is determined by the combinations are well known—high card, one pair, two pair, three-of-a-kind, straight, flush, full house, four-of-a-kind, and straight flush—and are described in nearly every card game rule book.

Unfortunately, in poker good combinations such as a straight flush, four-of-a-kind and full house are rare. Most people are reluctant to bet much when they hold only one or two pair. As a result, too many people drop out of the betting early, which may frustrate even people with good hands. One common solution is to introduce wild cards to increase the chances of receiving a good hand and thus keep the game interesting, but getting a wild card involves more luck than skill.

U.S. Pat. No. 4,662,637 to A. Pfeiffer discloses a method of playing a card game in which the players select desired cards which are delivered to players unless a player requests the same card that another player has requested during the same round of play or was dealt on a previous round, in which case a null card, having no value in determining the outcome of the game, is delivered to the requesting player. Poker rules are used to determine the outcome of the game.

U.S. Pat. No. 4,667,959 to A. Pfeiffer discloses a selector unit and card-storage carousel for playing a card game disclosed in U.S. Pat. No. 4,662,637.

Many games are now played on computers and the concept of playing card games over a network such as the Internet is well-known. Patents have been granted to new card games that include claims which cover playing the game over the Internet. For instance, U.S. Pat. No. 5,951,012 discloses a poker game where the amount of successive wagers is pre-established by the players; this game may be played on the Internet. Similarly, U.S. Pat. No. 6,012,720 discloses “enhanced features” of the card game Double Hand; this game may also be played on the Internet.

None of the prior art, however, discloses how to play a computerized card game with multiple variations where a player vies with other players, real and/or virtual, to choose cards that will result in the best possible hand.

SUMMARY OF THE INVENTION

The invention is a method of playing computerized multi-player card games, usually variations of poker, where the quality of players' hands is due to skill and strategy rather than “the luck of the draw.” Players request desired cards from a separate dealer without knowledge of which cards other players have requested. A null card, which has no value in determining the outcome of the game, is delivered to players who request the same card as another player has requested regardless of whether the card was requested previously or during the current round. In another embodiment, a null card is delivered only when two or more players request the same card during the current round or if a player requests a card that has already been distributed.

In one embodiment, each player has a copy of the software for the game on his/her computer, which is connected to a network. The software is configured as client-side software. Players connect to a server which runs the same software (although configured as server-side software) as the players and play the game over the Internet. The server assigns players to playing sessions, populates those sessions with virtual players if there aren't enough real players to fill that session, controls the virtual players, determines which player should receive which cards, keeps score, tracks the order of play, etc.

This invention offers substantial improvements over the game initially disclosed by the inventor in U.S. Pat. No. 4,662,637. The patented method only describes one method of playing the game. Also, players need to use the selector unit and carousel for storing cards disclosed in U.S. Pat. No. 4,667,959 in order to play the game.

This invention discloses a new card game, in which a player receives a null card if he or she requests a card that has been requested in previous rounds or by another player in the current round. This innovation makes the game far more challenging than previous versions in terms of selection and betting strategies. This invention also allows players to play the previously patented version and allows players to choose which game (five card stud, draw poker, etc.) they wish to play.

This invention improves the player's game-playing experience. When the game is played on a computer, the software can track the selection of cards, the order of selection, the delivery order of cards, the delivery of cards, the betting order, the amount each player bets, and the overall score, or total, for each player. In the non-computerized version, the players have to track these details on their own which may lead to confusion and delays in the game. When the game is played on a computer, the software also displays to each player which card was selected during each previous round, whereas in the non-computerized version, each player had to memorize both the value and round of each card they selected on a previous round that resulted in a null card being dealt to them. The invention also allows the game to be played at a faster pace, allowing players to spend more time actually playing the game than waiting for routine chores to be completed. For instance, once all the players have communicated to the dealer what card they want, delivery of the cards to the games is instantaneous (distribution of cards could take as long as 15 seconds using the prior art's selection unit and carousel). Also, the software can calculate and post scores much faster than individuals playing the non-computerized version. Once a game is completed, the next game can begin immediately. The prior art's selector unit and carousel requires cards to be reloaded after every game; this can take as long as thirty seconds. The prior art selector unit and carousel also required specially labeled cards in order to operate; the present invention does not require similar accessories.

Finally, because this game is played on the Internet, players are now able to play the game whenever they wish instead of being limited to playing at times only when they are in a room with a suitable number of other players. Players may also play with other real players, virtual players controlled by the software, or a combination of the two. Players may also choose to play against a chosen group of players or against randomly selected players.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing the configuration of players' computers and the server in accordance with the invention.

FIG. 2 is a flow chart showing how a player obtains software and registers to play the game in accordance with the invention.

FIG. 3a is a flow chart showing how the server software begins a session of play in accordance with the invention.

FIG. 3b is a flow chart showing server software operations during a session of play in accordance with the invention.

FIG. 3c is a flow chart showing server software operations during a session of play in accordance with the invention.

FIG. 3d is a flow chart showing server software operations during a session of play in accordance with the invention.

FIG. 3e is a flow chart showing server software operations during a session of play in accordance with the invention.

FIG. 3f is a flow chart showing server software operations during a session of play in accordance with the invention.

FIG. 4a is a flow chart showing client software operations in accordance with the invention.

FIG. 4b is a flow chart showing client software operations in accordance with the invention.

FIG. 5a is a flow chart showing how the server software chooses cards for virtual players during the first and second rounds of play in accordance with the invention.

FIG. 5b is a flow chart showing how the server software chooses cards for virtual players during later selection rounds in a accordance with the invention.

FIG. 5c is a flow chart showing how the server software chooses cards for virtual players during later selection rounds in accordance with the invention.

FIG. 5d is a flow chart showing how the server software chooses cards for virtual players during later selection rounds in accordance with the invention.

FIG. 6 is a flow chart showing how the server software calculates the best potential hand of a virtual player.

FIG. 7a is a flow chart showing how the server software determines a bet for a virtual player during the first betting round in accordance with the invention.

FIG. 7b is a flow chart showing how the server software determines a bet for a virtual player during the second betting round in accordance with the invention.

FIG. 7c is a flow chart showing how the server software determines a bet for a virtual player during later betting rounds in accordance with the invention.

FIG. 7d is a flow chart showing how the server software determines a bet for a virtual player during the final betting round in accordance with the invention.

FIG. 7e is a flow chart showing how the server software determines a bet for a virtual player during the final betting round in accordance with the invention.

FIG. 7f is a flow chart showing how the server software determines a bet for a virtual player during the final betting round in accordance with the invention.

FIG. 7g is a flow chart showing the server software's actions during the second betting round.

FIG. 8a is an example of how a player's screen may appear when he or she is the dealer for selecting the next game to be played.

FIG. 8b is an example of how a player's screen may appear when he or she is the dealer for selecting the next game to be played.

FIG. 9a is an example of how a player's screen may appear when he or she is selecting a card.

FIG. 9b shows what information a player's screen contains when he or she is selecting a card.

FIG. 10 is an example of how various dealt cards are displayed on a player's screen.

FIG. 11a is an example of how a player's screen may appear during betting.

FIG. 11b is an example of how a player's screen may appear during betting.

DETAILED DESCRIPTION OF THE INVENTION

A computer-based multiplayer card selection game as disclosed herein can best be played over the Internet in order to accommodate the broadcast range of players, no matter where they are located. While the Internet is the preferred operating environment, it is not the only networked environment for playing such a game; for instance, hand-held computers (i.e., Personal Digital Assistants) can communicate via an infra-red signal, allowing the operators to play each other, or video game hardware as used in game arcades can be linked together by a local area network.

With respect to FIG. 1, two software modules, configured either as client-side or server-side software, are involved in managing and facilitating game play. Each player's computer 14 contains a copy of the client software module 16 (which can be downloaded from a World Wide Web page featuring the same) which provides him or her with the capability to select and view cards (either as images or descriptive text) and bets, to communicate such selections to the server software (which will in turn communicate some of this information to the other players). The client software receives and displays information from the server software regarding which player is the dealer only for game selection, when to select a card or bet, what the betting position is, what cards are dealt to that player, what card is dealt to each of the other players in a round where cards are dealt face-up, what actions other players have taken, and, when a game is over, who the winners are and how much each has won and the value of each face down card the remaining players were dealt.

The server software module 12, which usually resides on a computer (server) 10 separate from the other players' computers 14 in order to protect privacy, provides overall management of the game flow by receiving card and bet selection information from each player as well as game selection information from the dealer. The server software 12 also sends information to each player regarding when a new game begins, which player is the dealer for only selecting the next game, what game the dealer selected, when a new round begins, what card is dealt to that player, what card is dealt to each of the other players for a round where cards are dealt face-up, which player is the current bettor, what bet the current bettor made, and, when the game is over the value of each face-down card the remaining players were dealt, which players won and each player's holdings. The server software 12 also determines whether the desired card or a null card (which may be represented by a joker) is dealt to a player and for each virtual player determines either its selected card or selected bet when that virtual player's turn comes.

In FIG. 2, a prospective player accesses the World Wide Web page featuring the game (step 18) and requests to play (step 20). The game client software module is downloaded from the game server to the player's computer (step 22). The player's Web browser then automatically begins running the game client software (step 24). The game server software assigns an ID to this potential player and sends a message with the assigned ID back to the player's client software (step 26). When the client software receives the assigned ID message from the server, it then queries the player about his or her name and what type of playing session, “Original” (where a player receives a desired card only if it has not been requested by another player during that round or previously distributed) or “One Shot” (where a player receives a desired card only if has not been requested in the current round by another player or any previous round) they want to join (step 28). The player enters the requested information (step 30); once these questions are answered, the game client software automatically sends a message back to the game server software containing the player's name, type of playing session, and the player's IP address which identifies the player's unique computer on the Internet (step 32). The game server software signs the player up for the requested session after receiving the message from the client software (step 34).

The game client software does not need to be downloaded every time a player wishes to play the game; a saved copy of the game client software may be used instead. However, a connection between the client and server software must be established and information exchanged as discussed above in order for the server software to sign up the player for a session. The client software may save a profile of the player and transmit this profile to the server in order to speed up the registration process.

In the preferred embodiment, a session starts after either seven players have signed up or fifteen minutes have elapsed, whichever occurs first. Where fewer than seven players have signed up by the time a session is scheduled to start, vacancies are filled by virtual players. Other embodiments may have fewer than seven players per playing session and may have a different sign-up period.

With regard to FIG. 3a, at the start of a playing session (step 36), the server software initializes key variables, such as the player's holding (in this embodiment, five thousand “virtual dollars”), the number of players, etc. (step 38). The server software randomly selects which player is the first dealer (step 40). (The player who is the dealer only chooses the game to be played. Cards are actually distributed by the server software based on whether a playing session is “Original” or “One Shot.”) For subsequent games the server software cycles through the players to select the dealer. A counter is set for the first player (step 42). The server software then determines whether this player is a virtual player (step 44). If not, a message is sent to the real player identifying the dealer (step 46). The server software then checks to see if the player is the last player (step 48). If not, the player counter is incremented (step 50) and the server software determines whether the next player is a virtual player (step 44). When the server software determines that there is a virtual player, no message is sent to the player identifying the dealer; instead, the server software determines whether there are any more players to be notified (step 48).

Referring to FIGS. 3a and 3b, after processing the players (steps 44, 48 and 50), the server software next determines whether the dealer is a virtual player (step 52). If so, the server software chooses the current game either by repeating the choice of the last real dealer or by random selection (step 54). If the dealer is a real player, the real player chooses the game (point C; see FIG. 3b). In FIG. 3b, the server software waits for a message from the dealer identifying the game the dealer chooses (step 68) (a time limit may be set so that if the dealer fails to choose a game within a specified period of time, the server software will select the game instead).

In this embodiment there are two game choices; five card stud and seven card stud. Five card stud has five rounds of card selection with the cards down (hidden) for the round 1 and up (showing) for rounds two through five and betting in rounds two through five. Seven card stud has seven rounds of card selection with the cards down (hidden) for rounds one and two and seven and cards up (showing) for rounds three through six and betting in rounds three through seven. Other embodiments can have other poker variations such as draw or five card high/low.

When a real player is the dealer, the associated client software queries him or her by displaying a button labeled “5 card stud” and a button labeled “7 card stud.” The real player selects the game to be played and its client software sends a message to the server software identifying the current game. (See FIG. 4a and accompanying text.) The dealer's client software then displays the full deck of fifty-two playing cards from which the dealer will make his or her current round card selection. If a real player is not the dealer, then the associated client software waits for a message from the server identifying the current game. When the client software for a non-dealer player receives a message from the server identifying the current game, it stores and displays this information and then displays the full deck of fifty-two cards from which the player will make his or her current round card selection.

Referring again to FIG. 3a, once the game is selected, the server software stores this information, automatically subtracts an ante (in this case, five dollars) from each player's holdings, and prepares for the first round of play (step 56). A counter is set for the first player (step 58). The server software determines whether this player is a virtual player (step 60). If the player is a real player, a message is sent to the player identifying the game (step 62). After the message is sent, or if the player is a virtual player, the server software determines whether other players need to be contacted (step 64). If so, the player counter is incremented (step 66) and steps 60, 64, and, where necessary, 62 are repeated. After these steps have been completed, the server software then begins processing card selections for the current round (point E; see FIG. 3c).

Referring now to FIG. 3c, the card selection process begins at point E. The server software first determines whether all active, real players have selected a card (step 90). Referring to FIG. 3b, step C, if all active, real players have not responded, the server software waits for a message from the real player (step 68). When the real player responds (step 72), that card selection is registered (point F; see FIG. 3c, step 88). A time limit may be set for a player to select a card. If a player does not choose a card within the time allotted to him or her, the server software will deal a null card to the player.

Referring again to FIG. 3c, once all active, real players have selected a card (step 90), the server software determines whether there are active virtual players (step 92). If there are no active virtual players, the server software determines the card to be dealt to each active player (step 96). If there are active virtual players, the server software determines the selected card for each of these players (step 94; this process will be described in more detail in FIGS. 5a, 5b, 5c, and 5d below). The server software then determines whether each active player should receive their selected card or a null card (step 96). (If the game being played is the Original version, the player receives the selected card only if the card was not previously distributed and was not chosen by another player during the current round. If One Shot is being played, the player receives the selected card only if it was not previously selected and was not chosen by another player during the current round. A null card is distributed when the player cannot receive the card he or she selected.) A special code is used in the message to indicate that an inactive player is not dealt a card.

After determining which cards players should receive (step 96), the server software determines whether there are active virtual players (step 98). If there are, the server software calculates each active virtual player's best potential hand (step 100; this will be explained further in FIG. 6 below). After calculating each virtual player's best potential hand (step 100), or if there are no active virtual players (step 98), the server software determines if this is a betting round (step 536). If so, the server software rates and arranges, from highest to lowest score, all active players' hands based only on face-up cards (step 102) to determine who the first bettor is (i.e., who has the best hand) (step 104) (go to point G; FIG. 3d.)

Referring to FIG. 3d, the server software then sets a counter for the first player (step 106). If the first player is not a virtual player (step 108), the server software sends a message to the real player identifying the card dealt, the first bettor if any, and, if the card dealt is an “up card” (i.e., is dealt face-up), the card dealt to every other player (step 110). After sending this message to the real player, or if the player is a virtual player (step 108), the server software determines whether there are other players to be processed (step 112). If there are more players, the server software increments the player counter (step 114) and repeats steps 108, 112, and, where necessary, step 110. When the last player has been processed, the server software determines if this is a betting round (step 546). If not, the server software then begins processing for the next round (point D; see FIG. 3f). If so, the server software begins processing bets.

The server software first determines whether the current bettor is a real player (step 116). If so, the server software determines if this real player is the first bettor (step 548). If so, the server software waits for a message from the current real bettor (point C; see FIG. 3b) identifying the bet (step 74). A time limit for a player to bet may be set. If the player exceeds the time limit, the server software may force the player to either call or fold. If the player is not the first bettor, a counter is set for the first player (step 118). If the first player is not a virtual player (step 120), the server software sends a message to the real player identifying the current bettor (step 122). The server software then determines whether any other players need to be processed (step 124). If so, the player counter is incremented (step 126). The server software determines whether the next player is a virtual player (step 120) and steps 120, 124, and, where necessary, steps 122 and 126 are repeated. When the last player has been processed (step 124) or the first better is real (step 548), the server waits for a message from the current real bettor (point C; see FIG. 3b) identifying the bet (step 74). Once the current bettor has identified his or her bet, the bet is registered (point I; see FIG. 3d).

Referring again to FIG. 3d, if the current bettor is not a real player, the server software determines the virtual player's bet (step 128; this is discussed in greater details in FIGS. 7a, 7b, 7c, 7d, 7e, and 7f below). The server software then registers the bet (step 130) and the server software begins the process of notifying other players of the bettor and bet (point J; see. FIG. 3e).

In FIG. 3e, a counter is set for the first player (step 132). If the first player is a real player (step 134), a message is sent to the player identifying the current bettor and the bet (step 136). After the message is sent, or if the first player is a virtual player, the server software determines whether any other players need to be processed (step 138). If so, the player counter is incremented (step 140) and steps 134, 138, and, where necessary 136 and 140 are repeated. Once all the players have been processed, the server software determines whether there are any more bettors (step 470). If there are any more bettors (step 468), the server software continues to process bets (point H; see FIG. 3d).

If there are no more bettors, the server software determines whether the current round is either the last round or if there is only one remaining player (step 472). If either of these conditions is met, the server software determines the winner(s) based on the rules of poker and the amount each player receives (step 474). A counter is set for the first player (step 476). If the first player is a real player (step 478), the server software sends a message to the player identifying the winner(s), the amount each player has won, and each down card value for the active players (step 480). After sending the real player the message, or if the first player is a virtual player, the server software determines whether more players need to be processed (step 482). If more players do need to be processed, the player counter is incremented (step 484), and steps 478, 482, and, where necessary, steps 480 and 484 are repeated. Once all players have been processed, the server software prepares for another hand (point A; see FIG. 3a).

Referring again to FIG. 3e, if the current round is not the last round and there are two or more active players remaining (step 472), the server software increments the round number and notifies the players of the round (point D; see FIG. 3f, step 76).

Referring now to FIG. 3f, after incrementing the round number (step 76), the server software sets a counter for the first player (step 78). The server software determines whether the first player is a virtual player (step 80). If the first player is a real player, the server software sends that player a message identifying the round (step 82). After sending this message, or if the first player is a virtual player, the server software determines whether other players need to be processed (step 84). If so, the player counter is incremented (step 86) and steps 80, 84, and, where necessary, steps 82 and 86 are repeated. Once the last player has been processed, the server software proceeds with card selection for that round (point E; see FIG. 3c) (see above for a detailed description of this process).

With regard to FIG. 4a, at the start of the session (step 486), the client software initializes variables (step 488). The client software then waits for a message from the server software identifying the dealer (step 490). Once the message is received from the server software (step 492), the client software registers and displays the identity of the dealer to the player (step 494). If the player associated with the particular instance of client software is the dealer (step 496), the player selects the game (step 498). The client software then sends a message identifying the chosen game to the server software (step 500). If the dealer is another player (step 496), the client software waits for a message from the server software identifying the game (step 490). Upon receiving the message, the client software registers and displays the game type to the player (step 504).

Once the game type has been chosen, the player selects a card (step 502) and the client software sends a message indicating which card this player selected to the server software (step 534). In this embodiment when a real player clicks on a card its client software offsets that card in the displayed deck and if a previous card had been displayed offset, the client software then returns the previous offset card to its original position in the displayed deck. To indicate the actual card selection decision for the current round each real player clicks the button labeled “Card selected”. When a real player clicks the “Card selected” button its client software then sends a message to the server identifying the selected card for the player and then waits for a message from the server identifying dealt cards and which player is the current bettor. If the current round is a down round meaning that each player should not know what card each of the other players have been dealt, then the server software message to each real player only identifies the card dealt to that player. However, if the current round is an up round, then the server software message to each real player identifies the card dealt to each active player. When each real player's client software receives the card selection message from the server software, it stores and displays that information.

After sending the card selection to the server (step 534), the client software waits for a message from the server (step 490) indicating what card the player will receive, the identity of the first bettor if any, and, if face-up cards are distributed during the current round, the cards received by the other players (step 508). Once this message is received, the client software registers and displays the dealt cards (step 510) and then determines if this is a betting round (point DD; see FIG. 4b). Referring to FIG. 4b, if this is not a betting round, then the client software gets ready for the player to select a card (point M; see FIG. 4a). If this is a betting round, then the client software registers and displays the identity of the first bettor (step 552). The client software then determines whether its player is the current bettor (step 512).

If the player associated with the particular instance of client software is the current bettor (step 512), the player places the bet (step 518) after which the client software sends a message to the server software identifying the bet (step 520). In this embodiment, the client software displays six buttons, each labeled for one of the six betting options: check, call, $5, $10, $25, fold, and a seventh button labeled “Bet.” (A bettor checks when no one else has made a money bet on the current round and he or she stays in the game but passes betting on to the next active player without making a money bet. A bettor calls when there have been one or more previous money bets that the player must match to stay in the game and does so without raising the called bet and then passes on betting to the next active player. $5, $10 and $25 are the amounts of virtual money any player may bet or raise on his or her turn. When a player folds he or she cannot win and becomes inactive for the current game. When a player folds it means that player no longer bets, selects a card, or is dealt a card for the remainder of the current game. In this embodiment the number of money bets in a round is limited to an initial money bet plus two raises. Other embodiments may set the bet amounts to other fixed values, any amount no greater than the size of the current pot or to any value. Other embodiments may also change the number of permissible raises.) The player clicks on the desired betting option and then clicks “Bet” to indicate their betting decision (step 518). When “Bet” is clicked, the player's client software sends a message to the server software identifying the current bettor and the bet (step 520). The client software then waits for a message from the server software (point L; see FIG. 4a).

In addition to the messages from the server software described above, the client software may receive other messages from the server software. Referring to FIG. 3f, the server software may send messages to real players identifying the round (step 82). With reference to FIGS. 3d and 3e, the server software may also send messages to real players identifying the current bettor (step 122), identifying the current bettor or bet (step 136), or identifying the winner(s) of the round, the amount won, etc. (step 480).

Referring again to FIG. 4a, the client software may receive a message from the server software identifying the bettor during a round of betting (step 516). When this happens, the client software registers and displays the bettor (step 514). The client software then determines whether its player is the current bettor (point N; see FIG. 4b).

Referring now to FIG. 4b, if the player associated with the particular instance of client software is the bettor (step 512), the player places the bet (step 518) after which the client software sends a message to the server software identifying the bettor and bet (step 520). The client software then waits for another message from the server software (point L; see FIG. 4a).

Referring again to FIG. 4a, if the message from the server software does not identify the cards dealt (step 508), the first bettor (step 508), or the current bettor (step 516), the client software continues to check the content of the message (point O; see FIG. 4b).

Referring to FIG. 4b, if the message from the server software identifies the bettor and the bet (step 522), the client software registers and displays the bet (step 524) and waits for another message from the server software (point L; see FIG. 4a).

Again referring to FIG. 4b, if the message from the server software identifies the round (step 526), the client software registers and displays the round to the player (step 528). The client software then determines whether this player has folded (step 530). If the player has folded, the client software waits for a message from the server software indicating a new round of play (point L; see FIG. 4a). If the player has not folded, the player selects a card (point M; see FIG. 4a).

The message from the server software may also indicate the end of the hand (step 532). If this is the case, the client software displays the information from the server about the winner(s) and winnings. The client software then prepares for the next hand (point K; see FIG. 4a).

In FIG. 5a, the server software begins to determine what cards the virtual players should select (step 144) by setting a counter for the first active virtual player (step 146). (This process was first referred to in FIG. 3c, step 94.) The server software first determines whether the current round is the first round (step 148). If the current round is the first round, the server software randomly generates an integer (1, 2, or 3) to choose a card for the player to select (step 150). If the generated integer is 1, the virtual player will randomly select any ace (step 152). If the generated integer is 2, the virtual player will randomly select a face card (step 154). If the generated integer is 3, the virtual player will randomly select any card except an ace or a face card (step 156). The server software then determines if there are other active virtual players that need to select cards (point U; see FIG. 5d).

Referring again to FIG. 5a, when choosing cards for virtual players to select in the second round (step 158), the server software first determines whether the player received a null card in the first selection round (step 160). If a null card was received, the server software next determines the session being played: “One Shot” or “Original” (step 162). If One Shot is being played, the virtual player can randomly choose any card but the previous selection (step 164). If the session is the Original version, the server software randomly generates an integer (1 or 2) (step 166). If 1 is generated, the virtual player can randomly choose any card but the previous selection (step 164). If 2 is generated, the virtual player picks the same card as in the first round (step 170). The server software then determines if there are other active virtual players that need to select cards (point U; see FIG. 5d).

Referring to FIG. 5a, in choosing a card in the second round, if a null card was not received in the first round, the server software begins generating random numbers to determine which card the virtual player should choose (point Q; see FIG. 5b).

In FIG. 5b, the server software randomly generates an integer (1, 2, or 3) (step 168). If 1 is generated, any card of a higher rank that is within four ranks of round one's selection is randomly chosen (step 172). The server software then randomly generates an integer (1, 2, 3, 4, or 5) (step 178). If 1, 2, 3, or 4 is generated, a card with the same rank as the current selection and the same suit as round one's selection is chosen (step 180). Otherwise, the card chosen in step 172 is selected. If after step 168 is performed, 2 is generated, any card of a lower rank that is within four ranks of round one's selection is randomly chosen (step 174). The server software then randomly generates an integer (1, 2, 3, 4, or 5) (step 178). If 1, 2, 3, or 4 is generated, a card with the same rank as the current selection and the same suit as round one's selection is chosen (step 180). Otherwise, the card chosen in step 172 is selected. If after step 168 is performed, 3 is generated, any card of the same rank but different suit as the round one selection is chosen (step 176). The server software then determines if there are other active virtual players that need to select cards (point U; FIG. 5d).

Referring now to FIGS. 5a, 5b, 5c, and 5d, if the current round is neither the first or second round, the server software moves to point R (see FIG. 5c) to determine the cards the virtual players should select. In FIG. 5c, subsequent selection round strategy for virtual players begins with the server software determining whether more cards are needed to fill the virtual player's best potential hand (step 182) (for a discussion of how the best potential hand is calculated, please see FIG. 6 and accompanying text below). If so (point T; see FIG. 5d), the server software will randomly choose any card missing from the virtual player's best potential hand that the virtual player “knows” might be free (FIG. 5d, step 194). The server software will then determine whether there are other active virtual players that need to select cards (step 200).

Referring now to FIG. 5c, if no more cards are needed for the virtual player's best potential hand (step 182), the server software arranges in order the other players whose best potential hand could beat the virtual player's hand (step 184). The players are arranged from highest to lowest potential score and the determination is based on the face-up cards and the cards the virtual player knows are not free. A counter is set for the ordered opponent with the highest potential score (step 186). Each player is then examined (point S; see FIG. 5d).

In FIG. 5d, the server software first determines whether each opponent with a potentially higher score has been examined to see if it is possible to block that opponent (step 188). If not, the server software then determines whether the opponent with a potentially better hand is missing cards that the virtual player knows might be free (step 190). If the player can be blocked, the server software randomly chooses any card that this player might be missing and the virtual player knows might be free (step 196). If the player cannot be blocked, the opponent counter is incremented (step 192) and the server software returns to the loop starting with step 188.

If all players have been examined (step 188) and it has been determined that none of the players can be blocked, the server software randomly chooses for the virtual player a card which has not been dealt face-up to any player, dealt face-down to this player, and, if the current session is a One-Shot session, has not been selected on a previous round by this player (step 198). The server software will then determine whether there are other active virtual players that need to select cards (step 200).

If all active virtual players have selected cards (step 200), the server software will end the card selection process for virtual players (step 470) and determine the dealt card for each active player (see FIG. 3c, step 96). If there are still active virtual players who need to select cards (step 200), the server software will increment the virtual player counter (step 202) and select a card for the next virtual player (point P; see FIG. 5a).

In FIG. 6, the server software begins (step 540) determining the virtual player's best potential hand by setting a counter for the first active virtual player (step 204). (The server software uses the calculations of the virtual player's best potential hand to determine which card to pick (see FIG. 5c) and how to bet (see FIGS. 7a, 7b, 7c, 7d, 7e, 7f, and 7g). The server software then calculates the player's best potential hand based on the cards dealt to the player, the face-up cards for other players, and, if the current session is a One-Shot session, what cards the player has selected (step 206). The server software then determines whether the other virtual players need to be processed (step 210). If so, the server software increments the active virtual player counter (step 208) and re-enters the loop beginning at step 206. If all virtual players have been processed, the server software is finished calculating best potential hands for this round (step 542).

With regard to FIG. 7a, when determining a virtual player's bet (see step 128, FIG. 3d), the server software begins (step 544) by arranging all active players from highest to lowest potential score based on what cards this player knows have been dealt and if One-Shot session, what cards this player has selected (step 212). The server software then determines whether the current betting round is the first betting round (step 214). If it is not the first betting round, the server software then determines whether it is the second betting round (point W; see FIG. 7g). If it is the first betting round, the server software then determines whether money bets have been made during the round (step 216). If money bets have been made, the server software determines whether the virtual player's potential hand is better than the last money bettor's (step 228). If so, the virtual player calls (step 230). If the virtual player's potential hand is not better than the previous bettor's, the server software then determines if the virtual player's potential hand is less than a full house or if the virtual player has a null card showing when the previous bettor does not have a null card showing (step 232). If either of these conditions is met, the virtual player folds (step 234). If the conditions of step 232 are not met, the server software then determines (point V; see FIG. 7b) whether more than one money bet was made during the current round of if the call amount is ten virtual dollars or more (step 236). If not, the virtual player will call (step 230). However, if these conditions are met, the server software determines whether the virtual player's potential hand could be a straight flush or if the last money bettor has a null card showing (step 238). If the answer to either of these queries is “yes,” the virtual player calls (step 230). If the answer is “no,” the virtual player folds (step 234).

Referring again to FIG. 7a, if no money bets have been made during the current round (step 216), the server software determines whether the virtual player is the first bettor or possesses a potential royal flush with no null cards showing (step 218) If neither of these conditions is met, the virtual player checks (step 226). If either of these conditions is met, the software randomly generates an integer (here, 1 through face-up card rating order position+2*number of null cards+2) (step 220). (The face-up card rating order position is a ranking of the quality of players' hands based on the cards showing. The best potential hand is “1,” the second-best is “2,” etc.) If 1 is generated, the virtual player bets five virtual dollars (step 222). If a number greater than one is generated, the virtual player will check (step 226). Once the server software has determined the virtual player's betting action, the server software exits this routine (step 224).

In FIG. 7g, the server software determines whether the current betting round is the second betting round (step 252). If not, the server software determines the betting round (point AA; see FIG. 5d). If the current betting round is the second betting round, the server software determines whether money bets have been made during the current round (step 254). If money bets have been made, the server software determines whether the virtual player's potential hand is better than the last money bettor's (point Z; see FIG. 7c).

Referring to FIG. 7c, the virtual player calls when the potential hand is better than the last money bettor's (step 264). If not, the server software then determines whether the virtual player's potential hand is less than a full house or the virtual player has a null card showing (step 274). If so, the virtual player folds (step 262). If not, the server software determines whether there has been more than one money bet during the current round or if the call amount is ten virtual dollars or more (step 276). If the answer to either of these questions is “yes,” the software determines whether the virtual player's potential hand is either worse than the last money bettor's or is no better than fourth best of all the hands (step 278). If the answer to either of these questions is “yes,” the virtual player folds (step 262). If the answer to both of these questions is “no,” the virtual player calls (step 264).

Referring again to FIG. 7g, if no money bets have been made during the second betting round (step 254), the server software checks to see if the virtual player has no null cards showing, and has less than two null cards total, and the up-card rating order position is less than three (step 256). If not, the virtual player checks (step 258). If these conditions are satisfied (point Y; see FIG. 7c), the server software will randomly generate an integer 1 through (up-cards rating order position+2*number of null cards+2) (step 260). If an integer greater than 1 is generated, the virtual player checks (step 258). If the integer generated is 1, the server software randomly generates an integer ranging from 1 to (3*[up-cards rating order position]+5) (step 266). If 1 is generated, the virtual player bets ten virtual dollars (step 270). If an integer greater than 1 is generated, the virtual player bets five virtual dollars (step 268). Once the server software has determined the virtual player's betting action, the software exits this routine (step 250).

In FIG. 7d, the server software determines whether the current betting round is the final betting round (step 280). If not, the server software determines whether money bets have been made during the current round (step 282). If money bets have been made, the server software determines (point BB; see FIG. 7e) whether the virtual player possesses the best potential hand among all the players (step 290). If so, the server software then determines whether the virtual player has any null cards showing or more than one null card (step 292). If so, the virtual player calls (step 294). If not, the server software randomly generates an integer between one and three (step 296). If 1 is generated, the virtual player raises the bet by five virtual dollars (step 300). If 2 is generated, the virtual player raises the bet by ten virtual dollars (step 304). If 3 is generated, the virtual player raises the bet by twenty-five virtual dollars (step 308).

If the virtual player does not possess the best potential hand (step 290), the server software determines whether the player's potential hand is better than the last money bettor's (step 324). If it is, the virtual player calls (step 332). If not, the server software reviews whether there has been more than one money bet during the current round or whether the call amount is ten virtual dollars or more (step 326). If the answers to both these questions are “no,” the virtual player calls (step 332). If the answer to either of these questions is “yes,” the server software determines whether the virtual player's potential hand is too weak to beat an opponent's best potential hand (step 328). If the hand is too weak, the virtual player folds (step 330). If the hand is not too weak, the virtual player calls (step 332).

Referring again to FIG. 7d, if no money bets have been made during the round, the server software determines whether the virtual player possesses the second best potential hand among the players (step 284). If not, the server software assesses whether the virtual player possesses the best potential hand of the players (step 310). If not, the virtual player checks (step 312). If the virtual player does possess the best potential hand, the virtual player bets ten virtual dollars (step 314).

If the virtual player does possess the second best potential hand of all the players, the server software determines whether the virtual player has any null cards showing or more than one null card (step 286). If so, the virtual player checks (step 288). If not, the server software determines whether the potential hand is too weak to beat the best potential hand (step 316). If it is, the virtual player checks (step 288). If not, the server software randomly generates an integer between 1 through (up-cards rating order position+2*number of null cards+2) (step 318). If an integer greater than 1 is generated, the virtual player checks (step 288). If 1 is generated, the virtual player bets five virtual dollars (step 320). Once the server software has determined the virtual player's betting action, the server software exits this routine (step 250).

Referring to FIG. 7d, if the current betting round is the final betting round (step 280), the betting strategy for the virtual players changes slightly (point CC; see FIG. 7f).

In FIG. 7f, the server software first determines whether any money bets have been placed during the current round (step 434). If so, the server software then determines whether the virtual player possesses the best hand of the players (step 458). If the virtual player does possess the best hand and a raise is permitted (step 460), the virtual player raises the bet by twenty-five virtual dollars (step 456). If no raise is permitted (step 460), the virtual player calls (step 462). If the virtual player possesses either the second- or third-best hand (step 466), has a hand better than a full house, and the best potential hand needs the right three down cards to beat the virtual player's hand (step 464), the virtual player calls (step 462). If the requirements of step 464 are not satisfied, the virtual player folds (step 468).

If no money bets have been placed during the final betting round, the server software determines whether the virtual player possesses the best hand of all the players (step 436). If the virtual player does possess the best hand, the server software randomly generates an integer between 1 and 3 (step 450). If 1 is generated, the virtual player checks (step 442). If an integer greater than 1 is generated, the server software will again randomly generate an integer between 1 and 3 (step 448). If 1 is generated, the virtual player bets five virtual dollars (step 446). If 2 is generated, the virtual player bets ten virtual dollars (step 454). If 3 is generated, the virtual player bets twenty-five virtual dollars (step 452).

If the virtual player does not possess the best hand, the server software determines whether the virtual player possesses the next best hand (step 438). If not, the virtual player checks (step 442). If the virtual player does possess the second-best hand, the server software randomly generates an integer between 1 and 8 (step 440). If 1 is generated, the virtual player bets five virtual players (step 446). If an integer greater than 1 is generated, the virtual player checks (step 442). Once the server software has determined the virtual player's betting action, the server software exits this routine (step 250).

When a real player is the dealer, the associated client software displays a screen for game selection. In this embodiment for a four person playing session of Original 5 card stud, FIG. 8a represents the game selection screen display 600 for the player associated with NAME1 736 when he or she is the dealer and FIG. 8b represents the game selection screen display 620 for the player associated with NAME3 740 when he or she is the dealer. Note that in FIG. 8a players are arranged so that NAME1 736 appears at the bottom of the screen and similarity in FIG. 8b NAME3 740 appears at the bottom of the screen.

Referring now to FIG. 8a, each player's holdings 604, which is $5,000 at the start of a playing session, is displayed next to their name. For game selection, buttons labeled “5 CARD STUD” 606, “7 CARD STUD” 608, “END SESSION” 610 and “PROCEED” 612 are used. The dealer clicks on the desired game and then presses the “PROCEED” button 612 to inform the client software to send a message to the server software identifying the current game (see FIG. 4a and accompanying text).

In this embodiment for a four-person playing session of Original 5 card stud, FIG. 9a and FIG. 9b represent the card selection screen display 640 and 660, respectively, for the player associated with NAME3 740 on round one of the first game when the player associated with NAME1 736 has selected the current game 642 and each player antes $5 at the beginning of each game. Referring to FIG. 9a, each player's holdings have now been reduced to $4995 644 because of the ante and the pot contains $20 646. For card selection, a standard deck of 52 playing cards 648 and the statement “CLICK ON DESIRED CARD!” 650 are displayed on the screen.

Referring to FIG. 9b, when the player associated with NAME3 740 clicks on a card, that card is offset 662 by NAME3's 740 client software and a button labeled “CARD SELECTED” 664 and a statement reading “PRESS ‘CARD SELECTED’ WHEN CHOICE IS FINAL!” 666 are displayed played by NAME3's 740 client software. The player associated with NAME3 clicks on “CARD SELECTED” 666 to inform the client software to send a message to the server software identifying the selected card for NAME3 740.

In an embodiment for a four-person session of Original 5 card stud, FIG. 10 represents the screen display for NAME3 740 after all cards are dealt in round two but before any betting 680. FIG. 10 is based on the following cards being selected and dealt to each of the players in the first two rounds. In round one, the player associated with NAME1 736 selected the ace of diamonds and was dealt a joker 684 because the player associated with NAME3 740 also selected the ace of diamonds 682, the player associated with NAME2 738 selected and was dealt the four of diamonds 696, the player associated with NAME3 740 selected the ace of diamonds and was dealt a joker 682 because NAME1 736 also selected the ace of diamonds and the player associated with NAME4 742 selected and was dealt the three of clubs 698. In the first round of 5 card stud cards are dealt face-down 684, 696, 698; therefore, on NAME3's screen 680 the only round one dealt card displayed face-up by his or her client software is NAME3's 682. Both the selected card and the dealt card are represented by a single card 682. In round two, NAME1 736 selected the four of diamonds and was dealt a joker 686 because the four of diamonds was dealt face-down 696 to NAME2 738 in round one; NAME2 738 selected and was dealt the ace of diamonds 688 because though the ace of diamonds was selected in round one by NAME1 684 and NAME3 682 it was never dealt and therefore was still free at the start of round two; NAME3 740 selected and was dealt the two of diamonds 690; and NAME4 742 selected and was dealt the three of diamonds 692. Note that the player associated with NAME2 738 is the first bettor in round two 694 because he or she has the best hand based on face-up cards only.

FIG. 11a represents the bet selection screen display 700 for the player associated with NAME3 740 when NAME2 738 was the first bettor and checked 702 and FIG. 11b represents the bet selection screen display 720 for the player associated with NAME3 740 when the player associated with NAME2 738 was the first bettor and bet $5 722. Referring to FIG. 11a buttons labeled “CHECK” 704, “$5” 706, “$10” 708, “$25” 710, “FOLD” 712, and “BET” 714 are displayed. NAME3 740 clicks on the desired bet button (704, 706, 708, 710, and 712) and then clicks on “BET” 714 to inform the client software to send a message to the server software identifying the bet for NAME3 740.

Referring to FIG. 11b buttons labeled “CALL” 724, “$5” 726, “$10” 728, “$25” 730, “FOLD” 732, and “BET” 734 are displayed, NAME3 740 clicks on the desired bet button (724, 726, 728, 730, and 732) and then clicks on “BET” 734 to inform the client software to send a message to the server software identifying the bet for NAME3 740. 

1. In a communications network, a method for playing an interactive, network-based card game comprising: a) establishing a connection between at least one client software program for a game of cards, said client software program running on a player's computer connected to a network, and a server software program for the game, said server software program running on a computer acting as a server and connected to the network, said connection enabling the player to join a playing session populated with other players selected from a group consisting of real and virtual players, the real players using separate computers connected to the network, each computer running another instance of the client software program, each instance of client software connected to the server software, and the virtual players generated and controlled by the game's server software, said game including the following steps: i) selecting at the player's computer a card from a deck of playing cards, said deck of cards the same for all players in the playing session; ii) communicating the identity of said card to the dealer controlled by the server software; iii) receiving at the player's computer a message from the server software identifying a card from the dealer, said card selected by the dealer from the group consisting of: A) the player's selected card; and B) a null card; iv) displaying at the player's computer the card dealt to that player; v) displaying at the player's computer any face-up cards that have been distributed to other players; vi) communicating a bet to the server software during the betting rounds; vii) receiving at the player's computer software notification of bets made by other players via a message from the server software; viii) repeating steps i—vii until a predetermined number of cards are delivered to each player and betting is concluded; ix) identifying the player with the best hand of cards according to predetermined rules of play via a message from the server software; x) receiving a score based on the player's hand at the player's computer via a message from the server software, said score calculated according to predetermined rules of play; xi) repeating steps i—x until the playing session ends; and b) closing the connection between the player's client software program and the server software to terminate session play.
 2. The method of claim 1 further including receiving from the dealer controlled by the server software notification of being dealt a null card if the player's selected card is in a group consisting of cards requested by another player in a current round and cards requested by any player during a previous round, receiving otherwise notification of being dealt the player's selected card.
 3. The method of claim 1 further including receiving from the dealer controlled by the server software notification of being dealt a null card if the player's selected card is in a group consisting of cards requested by another player in a current round and cards dealt during a previous round, receiving otherwise notification of being dealt the player's selected card.
 4. The method of claim 1 wherein the network is the Internet.
 5. The method of claim 1 wherein the network is an intranet.
 6. The method of claim 1 wherein the network is a local area network.
 7. The method of claim 1 wherein the game is played by rules of poker.
 8. The method of claim 7 wherein the game is selected from the group including five card stud, six card stud, and seven card stud.
 9. The method of claim 7 wherein the game is five card draw.
 10. The method of claim 1 wherein the game is selected from the group including five card high/low, six card high/low, and seven card high/low.
 11. The method of claim 7 wherein the game is selected from the group including five card low, six card low, and seven card low.
 12. The method of claim 1 wherein the server software allots each player virtual money with which to bet during the playing session.
 13. The method of claim 1 wherein the server software selects a player to choose which game to play.
 14. The method of claim 1 wherein the server software selects cards for virtual players.
 15. The method of claim 1 wherein the card selection step has a time limit.
 16. The method of claim 15 wherein the server software deals the player a null card if the player does not select a card within the time limit.
 17. The method of claim 1 wherein the server software determines bets for virtual players.
 18. The method of claim 1 wherein the betting step has a time limit.
 19. The method of claim 18 wherein the server software forces the player to fold if the player does not bet within the set time limit.
 20. The method of claim 18 wherein the server software forces the player to call if the player does not bet within the set time limit.
 21. The method of claim 1 wherein the player joins the playing session after information is exchanged between the player's client software and the server software.
 22. The method of claim 21 wherein the server software assigns an identification to the player.
 23. The method of claim 21 wherein the information sent to the server software includes the player's name, IP address, and requested playing session.
 24. In a communications network, a method for playing an interactive, network-based card game comprising: a) establishing a connection between at least one client software program for a game of cards, said client software program running on a player's computer connected to a network, and a server software program for the game, said server software program running on a computer acting as a server and connected to the network, said connection enabling a player to join a playing session populated with other players selected from a group consisting of real and virtual players, the real player using a separate computer connected to the network, each computer running another instance of the client software program that provides activity management for said player, each instance of the client software connected to the server software program, and the generation and activity management of each virtual player provided by the game's server software, said game including the following steps: i) each active, real player selecting at said player's computer a desired card from a deck of playing cards displayed by said player's client software, said deck of cards the same for each player in the playing session; ii) for each active, virtual player, said player's activity management software selecting a desired card from the deck of playing cards; iii) each active player's activity management software communicating to the server software the identity of the card selected by said player; iv) the server software determining what card each active player is dealt, said card being a null card having no value for scoring if said player's selected card is in a group consisting of cards selected by other players in the same round and cards dealt by the server software on a previous round, said card otherwise being said player's selected card; v) the server software sending a message to each active player's activity management software identifying the card dealt to that player; vi) each active, real player's client software displaying at said player's computer the card dealt by the server software; vii) for each round where cards are dealt face-up, the server software sending a message to each player's activity management software identifying what card each active player was dealt by the server software; viii) for each round where cards are dealt face-up, each real player's client software displaying at that player's computer the card that was dealt to each active player by the server software; ix) for each betting round, each active, real player selecting at said player's computer a desired bet when said player's betting turn comes; x) for each betting round, each active, virtual player's activity management software selecting a desired bet when said player's betting turn comes; xi) each active player's activity management software communicating to the server software the bet selected by said player; xii) after each bet, the server software sending a message to each player's activity management software identifying the bettor and bet; xiii) after each bet, each real player's client software displaying at that player's computer said bet, and when the bet is to fold, displaying face-down all previous face-up cards for the current bettor; xiv) repeating steps i-xiii until a predetermined number of cards are dealt by the server software to each active player and betting is concluded; xv) at the end of the game, the server software sending a message to each player's activity management software identifying each winner according to pre-determined rules of play, the amount each winner has won, and what the value is of each face-down card dealt during the game to any player that has not folded; xvi) at the end of the game, each real player's client software displaying at that player's computer the identity of each winner, the amount each winner has won, and what the value is of each face-down card dealt during the game to any player that has not folded; xvii) repeating steps i-xvi until the playing session ends; and b) closing the connection between each player's client software program and the server software program to terminate the playing session.
 25. The method of claim 24 wherein the network is the Internet.
 26. The method of claim 24 wherein the network is an intranet.
 27. The method of claim 24 wherein the network is a local area network.
 28. The method of claim 24 wherein the game is played by rules of poker.
 29. The method of claim 28 wherein the game is selected from the group including five card stud, six card stud, and seven card stud.
 30. The method of claim 28 wherein the game is five card draw.
 31. The method of claim 28 wherein the game is selected from the group including five card high/low, six card high/low, and seven card high/low.
 32. The method of claim 28 wherein the game is selected from the group including five card low, six card low, and seven card low.
 33. The method of claim 24 wherein the server software allots each player virtual money with which to bet during the playing session.
 34. The method of claim 24 wherein the server software selects a player to choose which game to play.
 35. The method of claim 24 wherein the card selection step has a time limit.
 36. The method of claim 35 wherein the server software deals the player a null card if the player does not select a card within the time limit.
 37. The method of claim 24 wherein the server software automatically subtracts the correct ante from each player's holdings at the start of each new game.
 38. The method of claim 24 wherein the betting step has a time limit.
 39. The method of claim 38 wherein the server software forces the player to fold if the player does not bet within the set time limit.
 40. The method of claim 38 wherein the server software forces the player to call if the player does not bet within the set time limit.
 41. The method of claim 24 wherein the player's computer is a personal digital assistant.
 42. The method of claim 24 wherein the player joins the playing session after information is exchanged between the player's client software and the server software.
 43. The method of claim 42 wherein the server software assigns an identification to the player.
 44. In a communications network, a method for playing an interactive, network-based card game comprising: a) establishing a connection between at least one client software program for a game of cards, said client software program running on a player's computer connected to a network, and a server software program for the game, said server software program running on a computer acting as a server and connected to the network, said connection enabling a player to join a playing session populated with other players selected from a group consisting of real and virtual players, each real player using a separate computer connected to the network, each computer running another instance of the client software program that provides activity management for said player, each instance of the client software connected to the server software program, and the generation and activity management of each virtual player provided by the game's server software, said game including the following steps: i) each active, real player selecting at said player's computer a desired card from a deck of playing cards displayed by said player's client software, said deck of cards the same for each player in the playing session; ii) for each active, virtual player, said player's activity management software selecting a desired card from the deck of playing cards; iii) each active player's activity management software communicating to the server software the identity of the card selected by said player; iv) the server software determining what card each active player is dealt, said card being a null card having no value for scoring if said player's selected card is in a group consisting of cards selected by other players in the same round and cards selected by any player on a previous round, said card otherwise being said player's selected card; v) the server software sending a message to each active player's activity management software identifying the card dealt to that player; vi) each active, real player's client software displaying at said player's computer the card dealt by the server software; vii) for each round where cards are dealt face-up, the server software sending a message to each player's activity management software identifying what card each active player was dealt by the server software; viii) for each round where cards are dealt face-up, each real player's client software displaying at that player's computer the card that was dealt to each active player by the server software; ix) for each betting round, each active, real player selecting at said player's computer a desired bet when said player's betting turn comes; x) for each betting round, each active, virtual player's activity management software selecting a desired bet when said player's betting turn comes; xi) each active player's activity management software communicating to the server software the bet selected by said player; xii) after each bet, the server software sending a message to each player's activity management software identifying the bettor and bet; xiii) after each bet, each real player's client software displaying at that player's computer said bet, and when the bet is to fold, displaying face-down all previous face-up cards for the current bettor; xiv) repeating steps i-xiii until a predetermined number of cards are dealt by the server software to each active player and betting is concluded; xv) at the end of the game, the server software sending a message to each player's activity management software identifying each winner according to pre-determined rules of play, the amount each winner has won, and what the value is of each face-down card dealt during the game to any player that has not folded; xvi) at the end of the game, each real player's client software displaying at that player's computer the identity of each winner, the amount each winner has won, and what the value is of each face-down card dealt during the game to any player that has not folded; xvii) repeating steps i-xvi until the playing session ends; and b) closing the connection between each player's client software program and the server software program to terminate the playing session.
 45. The method of claim 44 wherein the network is the Internet.
 46. The method of claim 44 wherein the network is an intranet.
 47. The method of claim 44 wherein the network is a local area network.
 48. The method of claim 44 wherein the game is played by rules of poker.
 49. The method of claim 48 wherein the game is selected from the group including five card stud, six card stud, and seven card stud.
 50. The method of claim 48 wherein the game is five card draw.
 51. The method of claim 48 wherein the game is selected from the group including five card high/low, six card high/low, and seven card high/low.
 52. The method of claim 48 wherein the game is selected from the group including five card low, six card low, and seven card low.
 53. The method of claim 44 wherein the server software allots each player virtual money with which to bet during the playing session.
 54. The method of claim 44 wherein the server software selects a player to choose which game to play.
 55. The method of claim 44 wherein the card selection step has a time limit.
 56. The method of claim 55 wherein the server software deals the player a null card if the player does not select a card within the time limit.
 57. The method of claim 44 wherein the server software automatically subtracts the correct ante from each player's holdings at the start of each game.
 58. The method of claim 44 wherein the betting step has a time limit.
 59. The method of claim 58 wherein the server software forces the player to fold if the player does not bet within the set time limit.
 60. The method of claim 58 wherein the server software forces the player to call if the player does not bet within the set time limit.
 61. The method of claim 44 wherein the player's computer is a personal digital assistant.
 62. The method of claim 44 wherein the player joins the playing session after information is exchanged between the player's client software and the server software.
 63. The method of claim 62 wherein the server software assigns an identification to the player.
 64. A method for playing a card game on a computing device having a display screen ( 640 ), the computing device being programmed to carry out the card game using card representations stored in a memory, the program enabling an actual player to play the card game against at least one virtual player controlled by the computing device, a player remaining in the game being defined as an active player, the method comprising: a) displaying to the actual player on the display screen ( 640 ) a deck of playing cards ( 648 ) face up, the deck of playing cards being a representation of a physical deck of cards; b) if the actual player is active, selecting by the actual player using a computer interface a desired card of a particular rank and suit from the deck of playing cards; c) selecting by each active, virtual player a desired card of a particular rank and suit from the deck of playing cards; d) for each active player, determining if the card selected by that player is the same as a card selected by another player in a current round or the same as a card dealt to another player in a previous round; e) if a first player chose the same card as another player, as determined in step (d), dealing the first player a null card that has no value in forming a card hand, wherein, if the first player is the actual player ( 740 ), the null card ( 682 ) dealt to the first player is displayed on the first player's display screen ( 680 ) showing the rank and suit of the card that the first player selected, wherein, if the first player is a player ( 736 ) other than the actual player and cards are dealt face up in a current round, the null card ( 686 ) dealt to the first player is displayed on the actual player's display screen ( 680 ) without showing the rank and suit of the card selected by the first player, so that the actual player does not know what card the first player selected; f) if the first player did not choose the same card as another player as determined in step (d), dealing the first player the card that the first player selected, wherein, if the first player is the actual player ( 740 ), the rank and suit of the card dealt to the first player ( 690 ) is displayed on the first player's display screen ( 680 ), wherein, if the first player is a player other than the actual player and cards are dealt face up in the current round, the rank and suit of the card dealt to the first player ( 688 ) is displayed on the actual player's display screen ( 680 ); g) repeating steps b-f if there is more than one active player after a round of play, until the same predetermined number of cards have been dealt to each active player; and h) identifying the active player with the best hand of cards, according to predetermined rules of play.
 65. The method of claim 64 wherein step (d) comprises: d) for each active player, determining if the card that player selected is the same as a card selected by another player in a current round or a previous round.
 66. A method for playing the same card game on multiple computing devices, each having a display screen ( 640 ), the computing devices being programmed to carry out the card game using card representations stored in a memory, the program enabling an actual player using one of the computing devices to play the card game against at least one other actual player using another one of the computing devices, a player remaining in the game being defined as an active player, the method comprising: a) displaying to each actual player on that player's display screen ( 640 ) the same deck of playing cards ( 648 ) face up, the deck of playing cards being a representation of a physical deck of cards; b) selecting by each active player a desired card of a particular rank and suit from the deck of playing cards; c) for each active player, determining if the card that player selected is the same as a card selected by another player in a current round or the same as a card dealt to another player in a previous round; d) if a first player chose the same card as another player, as determined in step (c), dealing the first player a null card that has no value in forming a card hand, wherein, if the first player is an actual player ( 740 ), the null card ( 682 ) dealt to the first player is displayed on the first player's display screen ( 680 ) showing the rank and suit of the card that the first player selected, wherein, if cards are dealt face up in the current round, the null card ( 686 ) dealt to the first player is displayed on the display screen of each actual player other than an actual player that is the first player, without showing the rank and suit of the card selected by the first player, so that each actual player other than an actual player that is the first player does not know what card the first player selected; e) if the first player did not choose the same card as another player, as determined in step (c), dealing the first player the card that the first player selected, wherein, if the first player is an actual player ( 740 ), the rank and suit of the card dealt to the first player ( 690 ) is displayed on the first player's display screen ( 680 ), wherein, if cards are dealt face up in the current round, the rank and suit of the card dealt to the first player ( 692 ) is displayed on the display screen of each actual player; f) repeating steps b-e if there is more than one active player after a round of play, until the same predetermined cards have been dealt to all active players; and g) identifying the active player with the best hand of cards, according to predetermined rules of play.
 67. The method of claim 66 wherein step (c) comprises: c) for each active player, determining if the card selected by that player is the same as a card selected by another player in a current round or a previous round. 